package com.carb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.carb.entity.User;
import com.carb.enums.UserRole;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 用户管理 Mapper 接口
 * </p>
 *
 * @author XuChaoyang
 * @since 2025-01-18
 */
public interface UserMapper extends BaseMapper<User> {

    /**
     * 根据用户姓名，得到用户id集合
     * @param name 用户姓名
     * @param userRole 用户角色
     * @return 用户id集合
     */
    List<Long> getUserIdsByName(String name, UserRole userRole);

    /**
     * 根据时间段和角色查询用户总数、新增用户数
     * @param beginTime 开始时间（为空，表示查询用户总数）
     * @param endTime 结束时间
     * @param userRole 用户角色
     * @return 用户总数/新增用户数
     */
    Integer getUserCount(LocalDateTime beginTime, LocalDateTime endTime, UserRole userRole);

    /**
     * 根据时间段和角色查询活跃用户数
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @param userRole 用户角色
     * @return 活跃用户数
     */
    Integer getActiveUserCount(LocalDateTime beginTime, LocalDateTime endTime, UserRole userRole);

}
